﻿using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using Smart.Security.Layout;
using Smart.Security.Layout.dsLayoutTableAdapters;
using System;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;

namespace Smart.ERP
{
    public partial class frmChangePassword : DevExpress.XtraEditors.XtraForm
    {
        public frmChangePassword()
        {
            InitializeComponent();
            SYS_LOG.Insert("Thay Đổi Mật Khẩu", "Xem");
            this.Text = (SYS_OPTION.Language == "VN") ? this.Text : "Change password";
        }

        private void frmChangePassword_Load(object sender, EventArgs e)
        {
            SYS_LOG.Insert("Thay Đổi Mật Khẩu", "Xem");
            this.Text = (SYS_OPTION.Language == "VN") ? this.Text : "Change password";
        }

        private void btLuu_Click(object sender, EventArgs e)
        {
            SYS_LOG.Insert("Thay Đổi Mật Khẩu", "Cập Nhật", MyLogin.UserId);
            string str = MyLogin.CreatePassword(MyLogin.Account, this.txtMatKhauCu.Text);
            SYS_USER sys_user = new SYS_USER();
            sys_user.Get(MyLogin.Account);
            if (str.CompareTo(sys_user.Password) != 0)
            {
                XtraMessageBox.Show("Bạn nhập mật khẩu hiện tại kh\x00f4ng đ\x00fang!", "Th\x00f4ng B\x00e1o", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                this.txtMatKhauCu.Text = "";
                this.txtMatKhauCu.Focus();
                this.solanDangNhap++;
                if (this.solanDangNhap >= 3)
                {
                    XtraMessageBox.Show("Bạn đ\x00e3 nhập sai qu\x00e1 số lần cho ph\x00e9p!\n\nPhần mềm sẽ tự động tắt!", "Th\x00f4ng B\x00e1o", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    base.Close();
                    Application.ExitThread();
                }
            }
            else if (this.txtMatKhauMoi.Text.CompareTo(this.txtLapLaiMatKhauMoi.Text) != 0)
            {
                XtraMessageBox.Show("Mật khẩu nhập lại kh\x00f4ng giống nhau! Xin vui l\x00f2ng nhập lại!", "Th\x00f4ng B\x00e1o", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                this.txtMatKhauMoi.Text = "";
                this.txtLapLaiMatKhauMoi.Text = "";
                this.txtMatKhauMoi.Focus();
                this.solanDangNhap++;
                if (this.solanDangNhap >= 3)
                {
                    XtraMessageBox.Show("Bạn đ\x00e3 nhập sai qu\x00e1 số lần cho ph\x00e9p!\n\nPhần mềm sẽ tự động tắt!", "Th\x00f4ng B\x00e1o", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    base.Close();
                    Environment.Exit(0);
                }
            }
            else if (sys_user.Update(sys_user.UserID, sys_user.UserName, this.txtLapLaiMatKhauMoi.Text, sys_user.Group_ID, "", "", true) == "OK")
            {
                XtraMessageBox.Show("Bạn đ\x00e3 thay đổi mật khẩu th\x00e0nh c\x00f4ng!", "Ho\x00e0n Th\x00e0nh", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                base.Close();
            }
            else
            {
                XtraMessageBox.Show("Bạn chưa thay đổi được mật khẩu mới!", "Th\x00f4ng B\x00e1o", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        private void btThoat_Click(object sender, EventArgs e)
        {
            base.Close();
        }
        protected override bool ProcessDialogKey(Keys keyData)
        {
            Keys keys = keyData;
            if (keys != Keys.Escape)
            {
                if (keys != Keys.F10)
                {
                    return false;
                }
            }
            else
            {
                if (base.ParentForm != null)
                {
                    base.ParentForm.Close();
                }
                return true;
            }
            if (base.ParentForm != null)
            {
                base.ParentForm.Close();
            }
            return true;
        }

        private void txtLapLaiMatKhauMoi_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                this.btLuu_Click(sender, e);
            }
        }

        private void txtMatKhauCu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                this.txtMatKhauMoi.Focus();
            }
        }

        private void txtMatKhauMoi_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                this.txtLapLaiMatKhauMoi.Focus();
            }
        }
    }
}